/**
 * @author LKQ
 * @date 2021/12/25 16:20
 * @description
 */
public class Solution {
    public static void main(String[] args) {

    }

    public int guessNumber(int n) {
        int left = 1, right = n;
        while (left < right) {
            // 循环直至区间左右端点相同
            // 防止计算时溢出, 不能直接(right + left) / 2
            int mid = left + (right - left) / 2;
            if (guess(mid) <= 0) {
                // 答案在区间 [left, mid] 中
                right = mid;
            } else {
                // 答案在区间 [mid+1, right] 中
                left = mid + 1;
            }
        }
        // 此时有 left == right，区间缩为一个点，即为答案
        return left;
    }

    public int guess(int n) {
        // API，官方给定。
        return 1;
    }
}
